#ifndef GENERATION_H
#define GENERATION_H

#include <sstream>
#include <string>

std::string itos(int i);
int stoi(const std::string& s);
std::string genname(int s, int l, int i);
std::string gensignal(int s, int l, int i);
bool generate(int size, int* cur, int* next, 
		std::stringstream& out, int layer=0);
void genfulladder(const std::string& a, const std::string& b, 
		const std::string& ci, const std::string& s, 
		const std::string& co, std::stringstream& out);
void genhalfadder(const std::string& a, const std::string& b, 
		const std::string& s, const std::string& co, 
		std::stringstream& out);
void genvhdltop(int i);
void genvhdlend(int i);
		
void foo();

#endif